import UIKit

@available(iOS, introduced: 8.0, deprecated: 10.0, message: "Use UserNotifications Framework's UNNotificationSettings")
extension QKC where AA == UIUserNotificationSettings {
    open func types_qk_g() -> QKC<AA,YY,ZZ, UIUserNotificationType >{
		 self +^ self.value.types
	}

	// The set of UIUserNotificationCategory objects that describe the actions to show when a user notification is presented
    open func categories_qk_g() -> QKC<AA,YY,ZZ, Set<UIUserNotificationCategory>? >{
		 self +^ self.value.categories
	}

}

@available(iOS, introduced: 8.0, deprecated: 10.0, message: "Use UserNotifications Framework's UNNotificationCategory")
extension QKC where AA :UIUserNotificationCategory {
    open func identifier_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.identifier
	}

	// UIUserNotificationActions in the order to be displayed for the specified context
    open func actions_qk_f(for context: UIUserNotificationActionContext) -> QKC<AA,YY,ZZ,[UIUserNotificationAction]?>{
		 self +^ self.value.actions(for:context)
	}

}

@available(iOS, introduced: 8.0, deprecated: 10.0, message: "Use UserNotifications Framework's UNNotificationCategory")
extension QKC where AA :UIMutableUserNotificationCategory {
    open func identifier_qk_s(_ identifier:  String?) -> QKC<AA,YY,ZZ, String?>{
		return link(next: identifier).then_QK { $0.value.identifier = identifier }
	}
    open func identifier_qk_g() -> QKC<AA,YY,ZZ, String?>{
		 self +^ self.value.identifier
	}

	// Sets the UIUserNotificationActions in the order to be displayed for the specified context
    open func setActions_qk_f(_ actions: [UIUserNotificationAction]?, for context: UIUserNotificationActionContext) -> QKC<AA,YY,ZZ, [UIUserNotificationAction]?>{
		 self +^ self.value.setActions(actions, for:context) +^ actions
	}

}

@available(iOS, introduced: 8.0, deprecated: 10.0, message: "Use UserNotifications Framework's UNNotificationAction")
extension QKC where AA :UIUserNotificationAction {
    open func identifier_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.identifier
	}

	// The localized title to display for this action.
    open func title_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.title
	}

	// The behavior of this action when the user activates it.
    @available(iOS 9.0, *)
    open func behavior_qk_g() -> QKC<AA,YY,ZZ, UIUserNotificationActionBehavior >{
		 self +^ self.value.behavior
	}

	// Parameters that can be used by some types of actions.
    @available(iOS 9.0, *)
    open func parameters_qk_g() -> QKC<AA,YY,ZZ, [AnyHashable : Any] >{
		 self +^ self.value.parameters
	}

	// How the application should be activated in response to the action.
    open func activationMode_qk_g() -> QKC<AA,YY,ZZ, UIUserNotificationActivationMode >{
		 self +^ self.value.activationMode
	}

	// Whether this action is secure and should require unlocking before being performed. If the activation mode is UIUserNotificationActivationModeForeground, then the action is considered secure and this property is ignored.
    open func isAuthenticationRequired_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isAuthenticationRequired
	}

	// Whether this action should be indicated as destructive when displayed.
    open func isDestructive_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isDestructive
	}

}

@available(iOS, introduced: 8.0, deprecated: 10.0, message: "Use UserNotifications Framework's UNNotificationAction")
extension QKC where AA :UIMutableUserNotificationAction {
    open func identifier_qk_s(_ identifier:  String?) -> QKC<AA,YY,ZZ, String?>{
		return link(next: identifier).then_QK { $0.value.identifier = identifier }
	}
    open func identifier_qk_g() -> QKC<AA,YY,ZZ, String?>{
		 self +^ self.value.identifier
	}

    open func title_qk_s(_ title:  String?) -> QKC<AA,YY,ZZ, String?>{
		return link(next: title).then_QK { $0.value.title = title }
	}
    open func title_qk_g() -> QKC<AA,YY,ZZ, String?>{
		 self +^ self.value.title
	}

    @available(iOS 9.0, *)
    open func behavior_qk_s(_ behavior:  UIUserNotificationActionBehavior) -> QKC<AA,YY,ZZ, UIUserNotificationActionBehavior>{
		return link(next: behavior).then_QK { $0.value.behavior = behavior }
	}
    @available(iOS 9.0, *)
    open func behavior_qk_g() -> QKC<AA,YY,ZZ, UIUserNotificationActionBehavior>{
		 self +^ self.value.behavior
	}

    @available(iOS 9.0, *)
    open func parameters_qk_s(_ parameters:  [AnyHashable : Any]) -> QKC<AA,YY,ZZ, [AnyHashable : Any]>{
		return link(next: parameters).then_QK { $0.value.parameters = parameters }
	}
    @available(iOS 9.0, *)
    open func parameters_qk_g() -> QKC<AA,YY,ZZ, [AnyHashable : Any]>{
		 self +^ self.value.parameters
	}

    open func activationMode_qk_s(_ activationMode:  UIUserNotificationActivationMode) -> QKC<AA,YY,ZZ, UIUserNotificationActivationMode>{
		return link(next: activationMode).then_QK { $0.value.activationMode = activationMode }
	}
    open func activationMode_qk_g() -> QKC<AA,YY,ZZ, UIUserNotificationActivationMode>{
		 self +^ self.value.activationMode
	}

    open func isAuthenticationRequired_qk_s(_ isAuthenticationRequired:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: isAuthenticationRequired).then_QK { $0.value.isAuthenticationRequired = isAuthenticationRequired }
	}
    open func isAuthenticationRequired_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.isAuthenticationRequired
	}

    open func isDestructive_qk_s(_ isDestructive:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: isDestructive).then_QK { $0.value.isDestructive = isDestructive }
	}
    open func isDestructive_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.isDestructive
	}

}

